package rullekake.beans.util;

import java.util.ResourceBundle;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

/**
 * Bean som tar seg av innlogging/utlogging av bruker.
 *
 */
@ManagedBean (name="loginHelper")
@RequestScoped
public class LoginHelper {
    private String username;
    private String password;
    public LoginHelper() {}


    /**
     * Utfører login mot servlet request.
     * @return sender bruker til begrenset område hvis alt gikk ok. Hvis ikke får bruker feilmelding.
     */
    public String login(){
        final ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
        final HttpServletRequest request = (HttpServletRequest)context.getRequest();
        try {
            request.login(getUsername(), getPassword());
            return "mypage";
        } catch (ServletException e) {
            JsfUtil.addErrorMessage("loginFailed");
            return null;
        }
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * Logger ut brukeren ved å sette brukernavn og roller til null, invalidater så session.
     */
    
    public static void logout() {
        HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
        try {
            request.logout();
        } catch (ServletException ex) {
        }
        request.getSession().invalidate();
        //return "logout";
    }
}
